Skip to content

include system accounts in recent revision filtering #6593

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 26, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions kitsune/sumo/form_fields.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,24 @@ def to_python(self, value):
return users


class MultiUsernameFilterField(forms.Field):
"""
Similar to MultiUsernameField with the following differences:
* Allows system accounts
* Cleaned data provides User querysets rather than User instances
"""

def to_python(self, value):
if value:
usernames = value.replace(",", " ").split()
if usernames:
return User.all_users.filter(is_active=True).filter(
Q(username__in=usernames) | Q(profile__name__in=usernames)
)

return User.objects.none()


class MultiUsernameOrGroupnameField(forms.Field):
"""Form field that takes a comma-separated list of usernames or groupnames
and validates that users/groups exist for each one, and returns the list of
Expand Down
4 changes: 2 additions & 2 deletions kitsune/wiki/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from django.utils.translation import ngettext_lazy as _nlazy

from kitsune.products.models import Product, Topic
from kitsune.sumo.form_fields import MultiUsernameField
from kitsune.sumo.form_fields import MultiUsernameField, MultiUsernameFilterField
from kitsune.wiki.config import CATEGORIES, SIGNIFICANCES
from kitsune.wiki.models import MAX_REVISION_COMMENT_LENGTH, Document, DraftRevision, Revision
from kitsune.wiki.tasks import add_short_links
Expand Down Expand Up @@ -425,6 +425,6 @@ class RevisionFilterForm(forms.Form):
"""Form to filter a list of revisions."""

locale = forms.ChoiceField(label=_lazy("Locale:"), choices=languages, required=False)
users = MultiUsernameField(label=_lazy("Users:"), required=False)
users = MultiUsernameFilterField(label=_lazy("Users:"), required=False)
start = forms.DateField(label=_lazy("Start:"), required=False)
end = forms.DateField(label=_lazy("End:"), required=False)